package com.xk._04regEx;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @description: 应用实例--经典的结巴程序
 * @author: xu
 * @date: 2022/11/2 10:12
 */
public class RegExp_13 {
    public static void main(String[] args) {
        String content = "我....我要....学学学学....编程java!";
        // 1. 去掉所有的 .
        String regStr = "\\.";
        Pattern pattern = Pattern.compile(regStr);
        Matcher matcher = pattern.matcher(content);
        content = matcher.replaceAll("");

        // 2. 去掉重复的字  我我要学学学学编程java!
        // 思路：
        // (1). 使用 (.)\\1+
        // (2). 使用 反向引用$1 来替换匹配到的内容
        // 注意：因为正则表达式变化，所以需要重置 pattern 和 matcher
        /*
        regStr = "(.)\\1+";
        pattern = Pattern.compile(regStr);
        matcher = pattern.matcher(content);
        content = matcher.replaceAll("$1");
        System.out.println("content = " + content);
         */

        // 3.使用一条语句去掉重复的字  我我要学学学学编程java!
        content = Pattern.compile("(.)\\1+").matcher(content).replaceAll("$1");
        System.out.println("content = " + content); // content = 我要学编程java!
    }
}
